#include <iostream>
#include <sys/types.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <stdlib.h>
using namespace std;
// 创建守护进程
int main()
{
    // 1.创建子进程,让父进程退出
    pid_t pid = fork();
    int ret = 0;
    if (pid == -1)
    {
        perror("fork");
        return -1;
    }
    if (pid)
        exit(0);

    // 2.创建新的会话,完全脱离控制终端
    pid = setsid();
    if (pid == -1)
    {
        perror("setsid");
        return -1;
    }
    // 3.改变当前工作目录
    ret = chdir("/");
    if (pid == -1)
    {
        perror("chdir");
        return -1;
    }
    // 4.设置权限掩码
    umask(0);

    // 5.关闭文件描述符
    close(STDIN_FILENO);
    close(STDOUT_FILENO);
    close(STDERR_FILENO);
    // 6.执行核心的任务
    // 每隔1s输出当前时间到/tmp/txt.log文件中
    while (1)
    {
        system("date >> /tmp/txt.log");
        sleep(1);
    }
    return 0;
}
